module.exports = {

  publicPath: './',
  // publicPath:process.env.NODE_ENV==='production'?'./',
  // (process.env.NODE_ENV==='test'?"/phoneMonitor":"/phoneMonitor"),
  outputDir: "D:/1-运行环境/Platform-1/UI/Platform", 
  // outputDir: "D:/1-运行环境/Platform/UI/Platform", 
  assetsDir: 'static',
  runtimeCompiler: true,
  devServer: {
    proxy: {
      '/api': {
        target: 'http://virtual.eduhenghong.cn:4497/', //对应自己的接口
        //target: 'http://192.168.2.20:4497/', //对应自己的接口
        // target: 'http://192.168.7.200:4497/', //对应自己的接口
        // target: 'http://192.168.2.4:4497/', //对应自己的接口
        // target: 'http://192.168.20.157:4497/', //大连
        // target: 'http://192.168.2.29:4497/', //
        changeOrigin: true,
        ws: true,
        pathRewrite: {
          '^/api': '/api'
        }
      }
    }
  },
  configureWebpack: {
    module: {
      rules: [
        {
          test: /\.mjs$/,
          include: /node_modules/,
          type: "javascript/auto"
        },
      ]
    },
    devtool: 'cheap-module-eval-source-map'
  },
  // css: {
  //   loaderOptions: {
  //     postcss: {
  //       plugins: [
  //         require("postcss-pxtorem")({
  //           rootValue: 192, // 换算的基数
  //           selectorBlackList: [".van"], // 忽略转换正则匹配项
  //           propList: ["*"]
  //         })
  //       ]
  //     }
  //   }
  // },
  // configureWebpack: { // webpack 配置
  //   output: { // 输出重构  打包编译后的 文件名称  【模块名称.版本号.时间戳】
  //     filename: `static/js/[name].${process.env.VUE_APP_Version}.${Timestamp}.js`,
  //     chunkFilename: `static/js/[name].${process.env.VUE_APP_Version}.${Timestamp}.js`
  //   },
  // },
  configureWebpack: {
    plugins: [
      // ......
    ],
    // 看这里：把chunk-vendors.js进行分包，提升资源加载速度，很有必要
    optimization: {
      mergeDuplicateChunks: true, // 合并相同的 chunk
      // runtimeChunk: 'manifest',
      // runtimeChunk: 'single',
      // splitChunks: {
      //   chunks: 'async',//表示将选择哪些块进行优化。提供字符的有效值为all、async和initial,默认是仅对异步加载的块进行分割。
      //   minSize: 100 * 1024,//模块大于minSize时才会被分割出来。默认100k
      //   maxSize: 0,//生成的块的最大大小，如果超过了这个限制，大块会被拆分成多个小块。
      //   minChunks: 1,//拆分前必须共享模块的最小块数。
      //   maxAsyncRequests: 5,//按需加载时并行请求的最大数目。
      //   maxInitialRequests: 3,//入口点的最大并行请求数
      //   automaticNameDelimiter: '~',//默认情况下，webpack将使用块的来源和名称（例如vendors~main.js）生成名称。此选项允许您指定要用于生成的名称的分隔符。
      //   automaticNameMaxLength: 30,//允许为SplitChunksPlugin生成的块名称的最大长度
      //   name: true,
      //   cacheGroups: {
      //     elementUI: {
      //       priority: 20,
      //       name: 'element-ui',
      //       test: /element-ui/,
      //       reuseExistingChunk: true
      //     },
      //     vendor: {
      //       name: `chunk-vendors`,
      //       test: /[\\/]node_modules[\\/]/,//控制此缓存组选择的模块。省略它将选择所有模块。它可以匹配绝对模块资源路径或块名称。匹配块名称时，将选择块中的所有模块。
      //       minChunks: 1,
      //       // maxInitialRequests: 12,
      //       maxAsyncRequests: 5,
      //       minSize: 100 * 1024,
      //       maxSize: 5 * 1000 * 1024,
      //       priority: -10//一个模块可以属于多个缓存组,模块出现在优先级最高的缓存组中
      //     },
      //     common: {
      //       name: `chunk-common`,
      //       minChunks: 2,
      //       priority: -20,
      //       chunks: 'initial',
      //       reuseExistingChunk: true//如果当前块包含已经从主包中分离出来的模块，那么该模块将被重用，而不是生成新的模块
      //     }
      //   }
      // },
      splitChunks:{
        chunks: 'all',
        name: 'common'
      }
    }
  }
}